#ifndef __LLSI_H__
#define __LLSI_H__

template<class T> class Nod
  {
    private:
      T data;
      Nod* urm;
    public:
      Nod();//constructor
      Nod(Nod&);//constructor de copiere
      void setData(T);//modificare data
      void setUrm(Nod*);//modificare nod urmator
      T getData();//return data
      Nod* getUrm();//return nod urmator
  };

template<class T> class Llsi
  {
    private:
      Nod<T>* p;
    public:
      Llsi();//constructor
      void adauga(T);//adaugarea unui nod in lista
      void sterge(T);//stergerea unui nod din lista
      void afisare();//afisarea listei
      int nrElemente();//returnarea nr de elemente
      void sortareC();//sortare crescatoare a listei
      void sortareD();//sortare descrescatoare a listei
  };

#endif